package com.ruoyi.central.service.custom;

import com.ruoyi.central.controller.vo.ProcessStepRunVo;
import com.ruoyi.central.domain.TopCentralArtProcessRun;
import com.ruoyi.central.domain.TopCentralOperationStationMaterial;
import com.ruoyi.central.domain.TopCentralProcessStepRun;

import javax.validation.constraints.NotNull;

/**
 * @Classname IManualOperationStationService
 * @Author: sunluquan
 * @Date: 2022/6/14 18:20
 * @Description TODO
 * 操作工位业务对象
 */
public interface IManualOperationStationService {

    /**
     * 完成工序执行
     *  1.修改当前执行工序为完成
     *  2.如果当前执行工序不是最后一道工序 进入 2.1 否则进入2.2
     *
     *  2.1修改下一道工序为开始执行
     *  2.1-1判断下一道工序是否有执行指令，且执行指令第一个操作类型为 手动 就进入 2.1-2
     *  1.2-2修改第一道执行指令为开始执行
     *
     *  2.2修改当前工序的工艺执行对象 为完成
     *  2.2.1删除 物料-操作工位绑定对象
     *  2.2.2修改物料对象的 物料状态为 已加工完成
     * @param processStepRunVo 活跃得工序执行对象
     * @return 当前完成工序的执行工艺对象
     */
    public TopCentralArtProcessRun toCompleteProcess(@NotNull ProcessStepRunVo processStepRunVo);

    void checkAndInit(TopCentralOperationStationMaterial operationStationMaterial);
}
